package com.moli.iov.handle.alarm.constants;

/**
 * <p>
 * 常量
 * </p>
 *
 * @author: zql
 * @Date: 2019/2/15 15:26
 */
public interface Constant {

    /**
     * redis 缓存前缀
     */
    String REDIS_PREFIX = "IOV:HADNLE:ALARM:";

    /**
     * 报警 或 取消报警 缓存key
     */
    String VIN_COMMAND_ALARM = REDIS_PREFIX + "VIN:CODE:";

    /**
     * 报警 Map 缓存 字段名 用于记录 报警数量 防抖 用
     */
    String ALARM_FIELD_ON = REDIS_PREFIX + "ON";


    /**
     *  取消报警 Map 缓存字段名 用于记录 取消报警数量 防抖 用
     */
    String ALARM_FIELD_OFF = REDIS_PREFIX + "OFF";

    /**
     * 终端报警或取消报警标志
     */
    String ALARM_FIELD_ON_OFF = REDIS_PREFIX + "ONOFF";

    /**
     * 车辆离线缓存 key
     */
    String ALARM_OFF_LINE = REDIS_PREFIX + "OFFLINE";

    /**
     * 缓存当前报警类型的状态
     */
    String ALARM_CODE_STATUS = REDIS_PREFIX + "VIN:CODE:CHECK:";

    /**
     * vin 上次累计里程
     */
    String VIN_LAST_TIME_MILEAGE = REDIS_PREFIX + "VIN:LASTTIME:MILEAGE:";

    /**
     * 里程阀值 缓存Key
     */
    String THRESHOLD_MILEAGE = REDIS_PREFIX + "THRESHOLD:";

    /**
     * 忽略报警标志
     */
    String IGNORE_ALARM = REDIS_PREFIX + "IGNORE:VIN:CODE:";

    /**
     * 车辆绑定/所处的围栏 缓存key
     */
    String VEHICLE_BINDING_FENCE_KEY = REDIS_PREFIX + "FENCE:";

    /**
     * 忽略报警标志 缓存时长 48小时
     */
    long IGNORE_ALARM_TIME = 60 * 60 * 48L;

    /**
     * 毫秒
     */
    long MILLISECONDS = 1000;
    /**
     * 蓄电池低电压报警值  11V
     */
    double ALARM_BATTERY_VOLTAGE = 11;

    /**
     * SOC电压低报警  低于20%
     */
    int ALARM_SOC = 20;

    /**
     * 错误电压
     */
    int ERROR_VOLTAGE = 0;

    /**
     * 离线报警时长
     */
    long OFF_LINE_TIME = 72 * 60 * 60 * 1000L;

    /**
     * 有效的 报警 或 取消报警 次数
     */
    long ALARM_TIMES = 6;

    /**
     * 无报警 或 取消报警 防抖值
     */
    int ANTI_SHAKE_NON = 0;

    /**
     * 防抖初始值
     */
    int ANTI_SHAKE_INIT = 1;

    /**
     * 防抖步长
     */
    int ANTI_SHAKE_STEP = 1;

    /**
     * 阀值不存在状态
     */
    double THRESHOLD_MILEAGE_NON = -1;

    /**
     * 系统默认用户id
     */
    long DEFAULT_USER_ID = 0;

    /**
     * 系统默认用户名称
     */
    String DEFAULT_USER_NAME = "system";

    /**
     * 不存在的设备id
     */
    String DEVICE_NUM_NON = "NON";

    /**
     * 出围栏 map key
     */
    String MAP_KEY_OUT = "out";

    /**
     * 进围栏 map key
     */
    String MAP_KEY_IN = "in";

    /**
     * 驶出围栏常量
     */
    String OUT_FENCE = "驶出";

    /**
     * 驶入围栏常量
     */
    String IN_FENCE = "驶入";

    /**
     * 半径米转换成千米
     */
    Integer RADIUS_UNIT = 1000;

}
